# 任务详情

# 根据提供的商品文本信息，对商品的标题内容、属性内容和描述内容进行分词（不包含标题和商品的属性名），完成文本分析工作。
# 请根据以上要求，将以下所需的函数补充完整。
# 本任务提供了jieba中文分词库和requests库。

# 任务要求
# 1. 构建函数wordTfidf()，对商品中除停用词外的关键词，计算其TF-IDF值

# 2. 返回文本中TF-IDF最大的前5个关键词，返回结果为list数据类型

# 3. 只保留词性为n、nr、ns的关键词

# 4. 返回的关键词正确率超过80%，程序即设计正确
# 

# 5. 下方给出的文本编码为UTF-8

# 测试用例
# 输入：任务中商品信息

# 输出：['裙子', '***', '***', ...]

# （此处隐藏剩余四个关键词的数据）
# 
# 雪纺淑女连衣裙 ：http://72.itmc.org.cn:80/JS001/static/data/python/3030/126/fj_chiffon_lady_dress.txt
# 
# 中文分词常用停用词_cn.txt ：http://72.itmc.org.cn:80/JS001/static/data/python/3030/126/fj_cn_stopwords.txt
# 
# # 1.运行或提交代码不需要自己编写测试用例，后台自动进行测试检查。
# 2.您编写代码的区域可以不限定在类或者函数体内，保证输入与输出符合任务要求即可。
# 3.点击“运行代码”按钮，可以查看程序设计是否正确，运行次数越多，任务得分越低。
# 4.点击“提交代码”按钮，系统将保存代码，并记录任务数据。
# 5.点击右上方“结束任务”按钮，系统将在后台计算任务得分，任务结束。
# -*- coding: utf-8 -*- 
import requests
import jieba
from jieba import analyse


class Solution:
    def wordTfidf(self) -> list:
        url = "http://72.itmc.org.cn:80/JS001/static/data/python/3030/126/fj_chiffon_lady_dress.txt"
        url1 = "http://72.itmc.org.cn:80/JS001/static/data/python/3030/126/fj_cn_stopwords.txt"
        stop = requests.get(url1)
        stop.encoding = 'utf-8'
        res = requests.get(url)
        res.encoding = "utf-8"
        list1 = []
        stoplist = [line for line in stop.text.splitlines()]
        res = "\n".join(i for i in res.text.splitlines()[2:])
        reslist = [line for line in res.splitlines()]
        for i in range(len(reslist)):
            if reslist[i] == "商品属性" or reslist[i] == "商品描述" or (reslist[i] in stoplist):
                reslist[i] = ""
            if ":" in reslist[i]:
                reslist[i] = str(reslist[i]).split(":")[1]
            if reslist[i] != "":
                list1.append(reslist[i])
        data = "".join(i for i in list1)
        return (analyse.extract_tags(data, topK=5, allowPOS=["n", "nr", "ns"]))


print(Solution.wordTfidf(Solution))
